package com.atguigu.srb.base.config;

import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * ClassName:Swagger2Config
 * Package:com.atguigu.srb.base.config
 * Description:  swagger2  分组   admin 是后台接口api    api 是前台接口api
 *
 * @Author:77
 * @Create:2023/3/21 - 0:30
 * @Version:v1.0
 */
@Configuration
@EnableSwagger2
public class Swagger2Config {
    @Bean
    public Docket AdminApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("AdminApi")
                .apiInfo(adminApiInfo())
                .select()
                .paths(Predicates.and(PathSelectors.regex("/admin/.*")))
                .build();
    }

    private ApiInfo adminApiInfo() {
        return  new ApiInfoBuilder()
                .title("尚荣宝后台管理系统API文档")
                .description("本文档描述了尚荣宝后台管理系统的各个模块接口调用方法")
                .version("1.9")
                .contact(new Contact("xiaoli","http://baidu.com","1373865119@qq.com"))
                .build();
    }
    @Bean
    public Docket WebApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("WebApi")
                .apiInfo(WebApiInfo())
                .select()
                .paths(Predicates.and(PathSelectors.regex("/api/.*")))
                .build();
    }
    private ApiInfo WebApiInfo() {
        return  new ApiInfoBuilder()
                .title("尚荣宝前台管理系统API文档")
                .description("本文档描述了尚荣宝前台管理系统的各个模块接口调用方法")
                .version("1.9")
                .contact(new Contact("xiaoli","http://baidu.com","1373865119@qq.com"))
                .build();
    }
}
